﻿////描述
////输入一行字符，分别统计出包含英文字母、空格、数字和其它字符的个数。
////
////数据范围：输入的字符串长度满足
////1
////≤
////n
////≤
////1000
////
////1≤n≤1000
////
////输入描述：
////输入一行字符串，可以有空格
////
////输出描述：
////统计其中英文字符，空格字符，数字字符，其他字符的个数
////
////示例1
////输入：
////1qazxsw23 edcvfr45tgbn hy67uj m, ki89ol.\\ / ; p0 -= \\][
////	复制
////		输出：
////		26
////		3
////		10
////		12
//
//
//
//#include <iostream>
//#include<string>
//using namespace std;
//
//int main() {
//	string s;
//	getline(cin, s, '\n');
//	int Ealpha = 0;
//	int dig = 0;
//	int space = 0;
//	int others = 0;
//	for (int i = 0; i < s.size(); i++) {
//		if (isalpha(s[i])) {
//			Ealpha++;
//		}
//		else if (isspace(s[i])) {
//			space++;
//		}
//		else if (isdigit(s[i])) {
//			dig++;
//		}
//		else {
//			others++;
//		}
//	}
//	cout << Ealpha << endl;
//	cout << space << endl;
//	cout << dig << endl;
//	cout << others << endl;
//}
//// 64 位输出请用 printf("%lld")
//
//
//
//
//
////某种特殊的数列a1, a2, a3, ...的定义如下：a1 = 1, a2 = 2, ..., an = 2 * an − 1 + an - 2 (n > 2)。
////
////给出任意一个正整数k，求该数列的第k项模以32767的结果是多少？
////
////输入描述：
////第1行是测试数据的组数n，后面跟着n行输入。每组测试数据占1行，包括一个正整数k(1 ≤ k < 1000000)。
////	输出描述：
////	n行，每行输出对应一个输入。输出应是一个非负整数。
////	示例1
////	输入：
////	2
////	1
////	8
////	复制
////	输出：
////	1
////	408
////
//
//#include <iostream>
//	using namespace std;
////数列不好的话，可以用数组和它的下标解决，从前往后依次给数组内赋值，但是注意数值越界问题即可。
//int main() {
//	int n;
//	cin >> n;
//	int a[10000000] = { 0 };
//	a[1] = 1;
//	a[2] = 2;
//	for (int i = 3; i < 1000000; i++) {
//		a[i] = (2 * a[i - 1] + a[i - 2]) % 32767;//如果不在这里%，而是直接放入，然后最后再%，那么数组内值可能比较大，然后无法放入，故这样操作
//	}
//	while (n--) {
//		int k = 0;
//		cin >> k;
//		cout << a[k] << endl;
//
//	}
//}
//// 64 位输出请用 printf("%lld")